/*******************************************************************************
** 文件名称：button.h
** 文件作用：按键
** 编写作者：Tom Free 付瑞彪
** 编写时间：2021-05-30
** 文件备注：
** 更新记录：
**           2021-05-30 -> 创建文件
**                                                            <Tom Free 付瑞彪>
**
**           Copyright (c) 2018-2021 付瑞彪 All Rights Reserved
**
**       1 Tab == 4 Spaces     UTF-8     ANSI C Language(C99)
*******************************************************************************/
#ifndef __BUTTON_H__
#define __BUTTON_H__

#include "chip_cfg.h"

/* 按键ID */
typedef enum
{
    BTN_ID_MODE,
    BTN_ID_INC,
    BTN_ID_DEC,
    BTN_ID_MAX,
} btn_id_t;

/* 按键事件类型 */
typedef enum
{
    BTN_EVENT_NONE,         /* 无事件 */
    BTN_EVENT_CLICK,        /* 单击 */
    BTN_EVENT_LONG_PRESS,   /* 长按 */
    BTN_EVENT_LONG_REPEAT,  /* 长按重复触发 */
    BTN_EVENT_MAX,
} btn_event_t;

/* 初始化 */
void button_init(void);

/* 按键轮询，10ms轮一次，返回值采用位定义，一位表示当前按键是否有事件产生 */
uint8_t button_poll(void);

/* 获取按键事件 */
btn_event_t button_get_event(btn_id_t btn_id);

#endif  /* __BUTTON_H__ */
